% arara: indent: {overwrite: true, silent: on}
% http://tex.stackexchange.com/questions/104528/tikz-shade-also-the-border-of-a-node
\documentclass[tikz,border=10pt,png]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\tikzset{
	shrink inner sep/.code={
			\pgfkeysgetvalue{/pgf/inner xsep}{\currentinnerxsep}
			\pgfkeysgetvalue{/pgf/inner ysep}{\currentinnerysep}
			\pgfkeyssetvalue{/pgf/inner xsep}{\currentinnerxsep - 0.5\pgflinewidth}
			\pgfkeyssetvalue{/pgf/inner ysep}{\currentinnerysep - 0.5\pgflinewidth}
		}
}

\tikzset{horizontal shaded border/.style args={#1 and #2}{
			append after command={
					\pgfextra{%
						\begin{pgfinterruptpath}
							\path[rounded corners,left color=#1,right color=#2]
							($(\tikzlastnode.south west)+(-\pgflinewidth,-\pgflinewidth)$)
							rectangle
							($(\tikzlastnode.north east)+(\pgflinewidth,\pgflinewidth)$);
						\end{pgfinterruptpath}
					}
				}
		},
	vertical shaded border/.style args={#1 and #2}{
			append after command={
					\pgfextra{%
						\begin{pgfinterruptpath}
							\path[rounded corners,top color=#1,bottom color=#2]
							($(\tikzlastnode.south west)+(-\pgflinewidth,-\pgflinewidth)$)
							rectangle
							($(\tikzlastnode.north east)+(\pgflinewidth,\pgflinewidth)$);
						\end{pgfinterruptpath}
					}
				}
		}
}
\begin{tikzpicture}
	\draw (0,0) node[rectangle,
			rounded corners,
			thick,
			outer sep=0pt,
			shrink inner sep,
			left color=red!50!white,
			right color=green!50!white,
			horizontal shaded border=red and green
		](A){abcabc abc};
	\draw (2.5,0) node[rectangle,
			rounded corners,
			thick,
			outer sep=0pt,
			shrink inner sep,
			top color=cyan!50,
			bottom color=orange!50,
			vertical shaded border=blue and orange
		](A){abcabc abc};
\end{tikzpicture}
\end{document}
